default-net
default-net
provides a cross-platform API for network interface and gateway.
- Get default Network Interface and Gateway information
- Get list of available Network Interfaces
Supported platform
Usage
Add default-net
to your dependencies
[dependencies]
default-net = "0.8.2"
Example
The following example retrieves and displays information about the default network interface.
use default_net;
fn main(){
match default_net::get_default_interface() {
Ok(default_interface) => {
println!("Default Interface");
println!("\tIndex: {}", default_interface.index);
println!("\tName: {}", default_interface.name);
println!("\tDescription: {:?}", default_interface.description);
if let Some(mac_addr) = default_interface.mac_addr {
println!("\tMAC: {}", mac_addr);
}else{
println!("\tMAC: (Failed to get mac address)");
}
println!("\tIPv4: {:?}", default_interface.ipv4);
println!("\tIPv6: {:?}", default_interface.ipv6);
if let Some(gateway) = default_interface.gateway {
println!("Default Gateway");
println!("\tMAC: {}", gateway.mac_addr);
println!("\tIP: {}", gateway.ip_addr);
}else {
println!("Default Gateway: (Not found)");
}
},
Err(e) => {
println!("{}", e);
},
}
}
Tested on
- Linux
- macOS 11.6
- Windows
- Windows 10 21H2 19044.1526
- Windows 11 21H2 22000.493 (VM)
For more details, see examples or doc.